From 9e0e7739a01ee25d1d7cd3b58ecdacb5763b094f Mon Sep 17 00:00:00 2001 From: "cl349@firebug.cl.cam.ac.uk" Date: Sat, 12 Mar 2005 21:16:57 +0000 Subject: [PATCH] bitkeeper revision 1.1236.25.9 (42335c497Bt0QbOvYK3fGa02eZ4_Sw) Update to Linux 2.6.11. Signed-off-by: Christian Limpach --- .rootkeys | 36 +++++++-------- .../arch/xen/i386/kernel/irq.c | 0 .../arch/xen/i386/kernel/smp.c | 4 +- .../arch/xen/i386/kernel/smpboot.c | 17 +++---- .../arch/xen/kernel/smp.c | 0 .../drivers/xen/blktap/Makefile | 0 .../drivers/xen/blktap/blktap.c | 0 .../drivers/xen/blktap/blktap.h | 0 .../drivers/xen/blktap/blktap_controlmsg.c | 0 .../drivers/xen/blktap/blktap_datapath.c | 0 .../drivers/xen/blktap/blktap_userdev.c | 0 .../drivers/xen/privcmd/privcmd.c | 5 ++- .../drivers/xen/usbback/common.h | 0 .../drivers/xen/usbback/control.c | 0 .../drivers/xen/usbback/interface.c | 0 .../drivers/xen/usbback/usbback.c | 0 .../drivers/xen/usbfront/usbfront.c | 0 .../drivers/xen/usbfront/xhci.h | 0 .../asm-xen/asm-i386/mach-xen/smpboot_hooks.h | 0 .../include/asm-xen/asm-i386/page.h | 1 - .../include/asm-xen/asm-i386/spinlock.h | 44 +++++++++++++++---- 21 files changed, 67 insertions(+), 40 deletions(-) rename {linux-2.6.10-xen-sparse => linux-2.6.11-xen-sparse}/arch/xen/i386/kernel/irq.c (100%) rename {linux-2.6.10-xen-sparse => linux-2.6.11-xen-sparse}/arch/xen/i386/kernel/smp.c (99%) rename {linux-2.6.10-xen-sparse => linux-2.6.11-xen-sparse}/arch/xen/i386/kernel/smpboot.c (99%) rename {linux-2.6.10-xen-sparse => linux-2.6.11-xen-sparse}/arch/xen/kernel/smp.c (100%) rename {linux-2.6.10-xen-sparse => linux-2.6.11-xen-sparse}/drivers/xen/blktap/Makefile (100%) rename {linux-2.6.10-xen-sparse => linux-2.6.11-xen-sparse}/drivers/xen/blktap/blktap.c (100%) rename {linux-2.6.10-xen-sparse => linux-2.6.11-xen-sparse}/drivers/xen/blktap/blktap.h (100%) rename {linux-2.6.10-xen-sparse => linux-2.6.11-xen-sparse}/drivers/xen/blktap/blktap_controlmsg.c (100%) rename {linux-2.6.10-xen-sparse => linux-2.6.11-xen-sparse}/drivers/xen/blktap/blktap_datapath.c (100%) rename {linux-2.6.10-xen-sparse => linux-2.6.11-xen-sparse}/drivers/xen/blktap/blktap_userdev.c (100%) rename {linux-2.6.10-xen-sparse => linux-2.6.11-xen-sparse}/drivers/xen/usbback/common.h (100%) rename {linux-2.6.10-xen-sparse => linux-2.6.11-xen-sparse}/drivers/xen/usbback/control.c (100%) rename {linux-2.6.10-xen-sparse => linux-2.6.11-xen-sparse}/drivers/xen/usbback/interface.c (100%) rename {linux-2.6.10-xen-sparse => linux-2.6.11-xen-sparse}/drivers/xen/usbback/usbback.c (100%) rename {linux-2.6.10-xen-sparse => linux-2.6.11-xen-sparse}/drivers/xen/usbfront/usbfront.c (100%) rename {linux-2.6.10-xen-sparse => linux-2.6.11-xen-sparse}/drivers/xen/usbfront/xhci.h (100%) rename {linux-2.6.10-xen-sparse => linux-2.6.11-xen-sparse}/include/asm-xen/asm-i386/mach-xen/smpboot_hooks.h (100%) rename {linux-2.6.10-xen-sparse => linux-2.6.11-xen-sparse}/include/asm-xen/asm-i386/spinlock.h (84%) diff --git a/.rootkeys b/.rootkeys index be7ae7e789..6f0b7f4aea 100644 --- a/.rootkeys +++ b/.rootkeys @@ -134,24 +134,6 @@ 3e5a4e683HKVU-sxtagrDasRB8eBVw linux-2.4.29-xen-sparse/mm/swapfile.c 41180721bNns9Na7w1nJ0ZVt8bhUNA linux-2.4.29-xen-sparse/mm/vmalloc.c 41505c57WAd5l1rlfCLNSCpx9J13vA linux-2.4.29-xen-sparse/net/core/skbuff.c -41d00d82zN8IfLBRxc7G_i7lbwT3cQ linux-2.6.10-xen-sparse/arch/xen/i386/kernel/irq.c -41811cac4lkCB-fHir6CcxuEJ2pGsQ linux-2.6.10-xen-sparse/arch/xen/i386/kernel/smp.c -41811ca9mbGpqBrZVrUGEiv8CTV3ng linux-2.6.10-xen-sparse/arch/xen/i386/kernel/smpboot.c -418f90e4lGdeJK9rmbOB1kN-IKSjsQ linux-2.6.10-xen-sparse/arch/xen/kernel/smp.c -41a226e0vjAcDXHOnXE5ummcdUD2mg linux-2.6.10-xen-sparse/drivers/xen/blktap/Makefile -41a226e0VeZA1N8tbU6nvJ3OxUcJmw linux-2.6.10-xen-sparse/drivers/xen/blktap/blktap.c -41a226e1k4J5VMLnrYXDWRqElS49YQ linux-2.6.10-xen-sparse/drivers/xen/blktap/blktap.h -41a226e1-A_Hy7utS8vJKaXnH_tzfA linux-2.6.10-xen-sparse/drivers/xen/blktap/blktap_controlmsg.c -41a226e19NoUUTOvs7jumDMRYDIO4Q linux-2.6.10-xen-sparse/drivers/xen/blktap/blktap_datapath.c -41a226e1MNSyWWK5dEVgvSQ5OW0fDA linux-2.6.10-xen-sparse/drivers/xen/blktap/blktap_userdev.c -41ee5e8bYDQkjRVKnFn5uFyy0KreCw linux-2.6.10-xen-sparse/drivers/xen/usbback/common.h -41ee5e8bt7xeBUJqG5XJS-ofukdsgA linux-2.6.10-xen-sparse/drivers/xen/usbback/control.c -41ee5e8bSs3BGC7yegM_ek2Tn0Ahvw linux-2.6.10-xen-sparse/drivers/xen/usbback/interface.c -41ee5e8bglvqKvZSY5uJ5JGQejEwyQ linux-2.6.10-xen-sparse/drivers/xen/usbback/usbback.c -41ee5e8ckZ9xVNvu9NHIZDK7JqApmQ linux-2.6.10-xen-sparse/drivers/xen/usbfront/usbfront.c -41ee5e8ck9scpGirfqEZRARbGDyTXA linux-2.6.10-xen-sparse/drivers/xen/usbfront/xhci.h -41811f07Iri9hrvs97t-baxmhOwWDQ linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/mach-xen/smpboot_hooks.h -4198c32a8NzmcKVOzKaEJfaQxxiA0A linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/spinlock.h 40f562372u3A7_kfbYYixPHJJxYUxA linux-2.6.11-xen-sparse/arch/xen/Kconfig 40f56237utH41NPukqHksuNf29IC9A linux-2.6.11-xen-sparse/arch/xen/Kconfig.drivers 40f56237penAAlWVBVDpeQZNFIg8CA linux-2.6.11-xen-sparse/arch/xen/Makefile @@ -169,12 +151,15 @@ 40f56238bnvciAuyzAiMkdzGErYt1A linux-2.6.11-xen-sparse/arch/xen/i386/kernel/head.S 40f58a0d31M2EkuPbG94ns_nOi0PVA linux-2.6.11-xen-sparse/arch/xen/i386/kernel/i386_ksyms.c 40faa751_zbZlAmLyQgCXdYekVFdWA linux-2.6.11-xen-sparse/arch/xen/i386/kernel/ioport.c +41d00d82zN8IfLBRxc7G_i7lbwT3cQ linux-2.6.11-xen-sparse/arch/xen/i386/kernel/irq.c 40f56238ue3YRsK52HG7iccNzP1AwQ linux-2.6.11-xen-sparse/arch/xen/i386/kernel/ldt.c 41d54a76YMCA67S8J-TBT3J62Wx6yA linux-2.6.11-xen-sparse/arch/xen/i386/kernel/microcode.c 4107adf1cNtsuOxOB4T6paAoY2R2PA linux-2.6.11-xen-sparse/arch/xen/i386/kernel/pci-dma.c 40f56238a8iOVDEoostsbun_sy2i4g linux-2.6.11-xen-sparse/arch/xen/i386/kernel/process.c 40f56238YQIJoYG2ehDGEcdTgLmGbg linux-2.6.11-xen-sparse/arch/xen/i386/kernel/setup.c 40f56238nWMQg7CKbyTy0KJNvCzbtg linux-2.6.11-xen-sparse/arch/xen/i386/kernel/signal.c +41811cac4lkCB-fHir6CcxuEJ2pGsQ linux-2.6.11-xen-sparse/arch/xen/i386/kernel/smp.c +41811ca9mbGpqBrZVrUGEiv8CTV3ng linux-2.6.11-xen-sparse/arch/xen/i386/kernel/smpboot.c 40f56238qVGkpO_ycnQA8k03kQzAgA linux-2.6.11-xen-sparse/arch/xen/i386/kernel/time.c 40f56238NzTgeO63RGoxHrW5NQeO3Q linux-2.6.11-xen-sparse/arch/xen/i386/kernel/timers/Makefile 40f56238BMqG5PuSHufpjbvp_helBw linux-2.6.11-xen-sparse/arch/xen/i386/kernel/timers/timer_tsc.c @@ -200,6 +185,7 @@ 412dfae9eA3_6e6bCGUtg1mj8b56fQ linux-2.6.11-xen-sparse/arch/xen/kernel/gnttab.c 40f562392LBhwmOxVPsYdkYXMxI_ZQ linux-2.6.11-xen-sparse/arch/xen/kernel/reboot.c 414c113396tK1HTVeUalm3u-1DF16g linux-2.6.11-xen-sparse/arch/xen/kernel/skbuff.c +418f90e4lGdeJK9rmbOB1kN-IKSjsQ linux-2.6.11-xen-sparse/arch/xen/kernel/smp.c 3f68905c5eiA-lBMQSvXLMWS1ikDEA linux-2.6.11-xen-sparse/arch/xen/kernel/xen_proc.c 41261688yS8eAyy-7kzG4KBs0xbYCA linux-2.6.11-xen-sparse/drivers/Makefile 4108f5c1WfTIrs0HZFeV39sttekCTw linux-2.6.11-xen-sparse/drivers/char/mem.c @@ -218,6 +204,12 @@ 40f56239-JNIaTzlviVJohVdoYOUpw linux-2.6.11-xen-sparse/drivers/xen/blkfront/blkfront.c 40f56239y9naBTXe40Pi2J_z3p-d1g linux-2.6.11-xen-sparse/drivers/xen/blkfront/block.h 40f56239BVfPsXBiWQitXgDRtOsiqg linux-2.6.11-xen-sparse/drivers/xen/blkfront/vbd.c +41a226e0vjAcDXHOnXE5ummcdUD2mg linux-2.6.11-xen-sparse/drivers/xen/blktap/Makefile +41a226e0VeZA1N8tbU6nvJ3OxUcJmw linux-2.6.11-xen-sparse/drivers/xen/blktap/blktap.c +41a226e1k4J5VMLnrYXDWRqElS49YQ linux-2.6.11-xen-sparse/drivers/xen/blktap/blktap.h +41a226e1-A_Hy7utS8vJKaXnH_tzfA linux-2.6.11-xen-sparse/drivers/xen/blktap/blktap_controlmsg.c +41a226e19NoUUTOvs7jumDMRYDIO4Q linux-2.6.11-xen-sparse/drivers/xen/blktap/blktap_datapath.c +41a226e1MNSyWWK5dEVgvSQ5OW0fDA linux-2.6.11-xen-sparse/drivers/xen/blktap/blktap_userdev.c 40f56239fsLjvtD8YBRAWphps4FDjg linux-2.6.11-xen-sparse/drivers/xen/console/Makefile 3e5a4e651TH-SXHoufurnWjgl5bfOA linux-2.6.11-xen-sparse/drivers/xen/console/console.c 40f56239KYxO0YabhPzCTeUuln-lnA linux-2.6.11-xen-sparse/drivers/xen/evtchn/Makefile @@ -232,6 +224,12 @@ 405853f6nbeazrNyEWNHBuoSg2PiPA linux-2.6.11-xen-sparse/drivers/xen/netfront/netfront.c 4108f5c1ppFXVpQzCOAZ6xXYubsjKA linux-2.6.11-xen-sparse/drivers/xen/privcmd/Makefile 3e5a4e65IUfzzMu2kZFlGEB8-rpTaA linux-2.6.11-xen-sparse/drivers/xen/privcmd/privcmd.c +41ee5e8bYDQkjRVKnFn5uFyy0KreCw linux-2.6.11-xen-sparse/drivers/xen/usbback/common.h +41ee5e8bt7xeBUJqG5XJS-ofukdsgA linux-2.6.11-xen-sparse/drivers/xen/usbback/control.c +41ee5e8bSs3BGC7yegM_ek2Tn0Ahvw linux-2.6.11-xen-sparse/drivers/xen/usbback/interface.c +41ee5e8bglvqKvZSY5uJ5JGQejEwyQ linux-2.6.11-xen-sparse/drivers/xen/usbback/usbback.c +41ee5e8ckZ9xVNvu9NHIZDK7JqApmQ linux-2.6.11-xen-sparse/drivers/xen/usbfront/usbfront.c +41ee5e8ck9scpGirfqEZRARbGDyTXA linux-2.6.11-xen-sparse/drivers/xen/usbfront/xhci.h 412f47e4RKD-R5IS5gEXvcT8L4v8gA linux-2.6.11-xen-sparse/include/asm-generic/pgtable.h 40f56239YAjS52QG2FIAQpHDZAdGHg linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/desc.h 4107adf1E5O4ztGHNGMzCCNhcvqNow linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/dma-mapping.h @@ -242,6 +240,7 @@ 40f5623aKXkBBxgpLx2NcvkncQ1Yyw linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/mach-xen/irq_vectors.h 40f5623aDMCsWOFO0jktZ4e8sjwvEg linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/mach-xen/setup_arch_post.h 40f5623arsFXkGdPvIqvFi3yFXGR0Q linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/mach-xen/setup_arch_pre.h +41811f07Iri9hrvs97t-baxmhOwWDQ linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/mach-xen/smpboot_hooks.h 4120f807GCO0uqsLqdZj9csxR1Wthw linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/mmu_context.h 40f5623adgjZq9nAgCt0IXdWl7udSA linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/page.h 40f5623a54NuG-7qHihGYmw4wWQnMA linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/param.h @@ -254,6 +253,7 @@ 412ea0afQL2CAI-f522TbLjLPMibPQ linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/ptrace.h 40f5623bzLvxr7WoJIxVf2OH4rCBJg linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/segment.h 40f5623bG_LzgG6-qwk292nTc5Wabw linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/setup.h +4198c32a8NzmcKVOzKaEJfaQxxiA0A linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/spinlock.h 40f5623bgzm_9vwxpzJswlAxg298Gg linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/synch_bitops.h 40f5623bVdKP7Dt7qm8twu3NcnGNbA linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/system.h 40f5623bc8LKPRO09wY5dGDnY_YCpw linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/tlbflush.h diff --git a/linux-2.6.10-xen-sparse/arch/xen/i386/kernel/irq.c b/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/irq.c similarity index 100% rename from linux-2.6.10-xen-sparse/arch/xen/i386/kernel/irq.c rename to linux-2.6.11-xen-sparse/arch/xen/i386/kernel/irq.c diff --git a/linux-2.6.10-xen-sparse/arch/xen/i386/kernel/smp.c b/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/smp.c similarity index 99% rename from linux-2.6.10-xen-sparse/arch/xen/i386/kernel/smp.c rename to linux-2.6.11-xen-sparse/arch/xen/i386/kernel/smp.c index 9fabbfe043..7b7763848b 100644 --- a/linux-2.6.10-xen-sparse/arch/xen/i386/kernel/smp.c +++ b/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/smp.c @@ -216,7 +216,7 @@ inline void send_IPI_mask_sequence(cpumask_t mask, int vector) static cpumask_t flush_cpumask; static struct mm_struct * flush_mm; static unsigned long flush_va; -static spinlock_t tlbstate_lock = SPIN_LOCK_UNLOCKED; +static DEFINE_SPINLOCK(tlbstate_lock); #define FLUSH_ALL 0xffffffff /* @@ -455,7 +455,7 @@ void smp_send_reschedule(int cpu) * Structure and data for smp_call_function(). This is designed to minimise * static memory requirements. It also looks cleaner. */ -static spinlock_t call_lock = SPIN_LOCK_UNLOCKED; +static DEFINE_SPINLOCK(call_lock); struct call_data_struct { void (*func) (void *info); diff --git a/linux-2.6.10-xen-sparse/arch/xen/i386/kernel/smpboot.c b/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/smpboot.c similarity index 99% rename from linux-2.6.10-xen-sparse/arch/xen/i386/kernel/smpboot.c rename to linux-2.6.11-xen-sparse/arch/xen/i386/kernel/smpboot.c index 4dd03ba6cd..9f39dde976 100644 --- a/linux-2.6.10-xen-sparse/arch/xen/i386/kernel/smpboot.c +++ b/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/smpboot.c @@ -65,11 +65,12 @@ static int __initdata smp_b_stepping; /* Number of siblings per CPU package */ int smp_num_siblings = 1; int phys_proc_id[NR_CPUS]; /* Package ID of each logical CPU */ +EXPORT_SYMBOL(phys_proc_id); /* bitmap of online cpus */ cpumask_t cpu_online_map; -static cpumask_t cpu_callin_map; +cpumask_t cpu_callin_map; cpumask_t cpu_callout_map; static cpumask_t smp_commenced_mask; @@ -404,8 +405,6 @@ void __init smp_callin(void) #endif map_cpu_to_logical_apicid(); - local_irq_enable(); - /* * Get our bogomips. */ @@ -420,7 +419,7 @@ void __init smp_callin(void) #if 0 disable_APIC_timer(); #endif - local_irq_disable(); + /* * Allow the master to continue. */ @@ -437,8 +436,6 @@ void __init smp_callin(void) int cpucount; -extern int cpu_idle(void); - static irqreturn_t local_debug_interrupt(int irq, void *dev_id, struct pt_regs *regs) @@ -463,7 +460,7 @@ extern void local_setup_timer(void); /* * Activate a secondary processor. */ -int __init start_secondary(void *unused) +static int __init start_secondary(void *unused) { /* * Dont put anything before smp_callin(), SMP @@ -484,6 +481,10 @@ int __init start_secondary(void *unused) */ local_flush_tlb(); cpu_set(smp_processor_id(), cpu_online_map); + + /* We can take interrupts now: we're officially "up". */ + local_irq_enable(); + wmb(); if (0) { char *msg2 = "delay2\n"; @@ -496,7 +497,7 @@ int __init start_secondary(void *unused) } } } - return cpu_idle(); + cpu_idle(); } /* diff --git a/linux-2.6.10-xen-sparse/arch/xen/kernel/smp.c b/linux-2.6.11-xen-sparse/arch/xen/kernel/smp.c similarity index 100% rename from linux-2.6.10-xen-sparse/arch/xen/kernel/smp.c rename to linux-2.6.11-xen-sparse/arch/xen/kernel/smp.c diff --git a/linux-2.6.10-xen-sparse/drivers/xen/blktap/Makefile b/linux-2.6.11-xen-sparse/drivers/xen/blktap/Makefile similarity index 100% rename from linux-2.6.10-xen-sparse/drivers/xen/blktap/Makefile rename to linux-2.6.11-xen-sparse/drivers/xen/blktap/Makefile diff --git a/linux-2.6.10-xen-sparse/drivers/xen/blktap/blktap.c b/linux-2.6.11-xen-sparse/drivers/xen/blktap/blktap.c similarity index 100% rename from linux-2.6.10-xen-sparse/drivers/xen/blktap/blktap.c rename to linux-2.6.11-xen-sparse/drivers/xen/blktap/blktap.c diff --git a/linux-2.6.10-xen-sparse/drivers/xen/blktap/blktap.h b/linux-2.6.11-xen-sparse/drivers/xen/blktap/blktap.h similarity index 100% rename from linux-2.6.10-xen-sparse/drivers/xen/blktap/blktap.h rename to linux-2.6.11-xen-sparse/drivers/xen/blktap/blktap.h diff --git a/linux-2.6.10-xen-sparse/drivers/xen/blktap/blktap_controlmsg.c b/linux-2.6.11-xen-sparse/drivers/xen/blktap/blktap_controlmsg.c similarity index 100% rename from linux-2.6.10-xen-sparse/drivers/xen/blktap/blktap_controlmsg.c rename to linux-2.6.11-xen-sparse/drivers/xen/blktap/blktap_controlmsg.c diff --git a/linux-2.6.10-xen-sparse/drivers/xen/blktap/blktap_datapath.c b/linux-2.6.11-xen-sparse/drivers/xen/blktap/blktap_datapath.c similarity index 100% rename from linux-2.6.10-xen-sparse/drivers/xen/blktap/blktap_datapath.c rename to linux-2.6.11-xen-sparse/drivers/xen/blktap/blktap_datapath.c diff --git a/linux-2.6.10-xen-sparse/drivers/xen/blktap/blktap_userdev.c b/linux-2.6.11-xen-sparse/drivers/xen/blktap/blktap_userdev.c similarity index 100% rename from linux-2.6.10-xen-sparse/drivers/xen/blktap/blktap_userdev.c rename to linux-2.6.11-xen-sparse/drivers/xen/blktap/blktap_userdev.c diff --git a/linux-2.6.11-xen-sparse/drivers/xen/privcmd/privcmd.c b/linux-2.6.11-xen-sparse/drivers/xen/privcmd/privcmd.c index 9c57aaf3a1..5967f52842 100644 --- a/linux-2.6.11-xen-sparse/drivers/xen/privcmd/privcmd.c +++ b/linux-2.6.11-xen-sparse/drivers/xen/privcmd/privcmd.c @@ -176,8 +176,9 @@ static int privcmd_ioctl(struct inode *inode, struct file *file, { unsigned long m2pv = (unsigned long)machine_to_phys_mapping; pgd_t *pgd = pgd_offset_k(m2pv); - pmd_t *pmd = pmd_offset(pgd, m2pv); - unsigned long m2p_start_mfn = pmd_val_ma(*pmd) >> PAGE_SHIFT; + pud_t *pud = pud_offset(pgd, m2pv); + pmd_t *pmd = pmd_offset(pud, m2pv); + unsigned long m2p_start_mfn = pfn_to_mfn(pmd_val(*pmd) >> PAGE_SHIFT); ret = put_user(m2p_start_mfn, (unsigned long *)data) ? -EFAULT: 0; } break; diff --git a/linux-2.6.10-xen-sparse/drivers/xen/usbback/common.h b/linux-2.6.11-xen-sparse/drivers/xen/usbback/common.h similarity index 100% rename from linux-2.6.10-xen-sparse/drivers/xen/usbback/common.h rename to linux-2.6.11-xen-sparse/drivers/xen/usbback/common.h diff --git a/linux-2.6.10-xen-sparse/drivers/xen/usbback/control.c b/linux-2.6.11-xen-sparse/drivers/xen/usbback/control.c similarity index 100% rename from linux-2.6.10-xen-sparse/drivers/xen/usbback/control.c rename to linux-2.6.11-xen-sparse/drivers/xen/usbback/control.c diff --git a/linux-2.6.10-xen-sparse/drivers/xen/usbback/interface.c b/linux-2.6.11-xen-sparse/drivers/xen/usbback/interface.c similarity index 100% rename from linux-2.6.10-xen-sparse/drivers/xen/usbback/interface.c rename to linux-2.6.11-xen-sparse/drivers/xen/usbback/interface.c diff --git a/linux-2.6.10-xen-sparse/drivers/xen/usbback/usbback.c b/linux-2.6.11-xen-sparse/drivers/xen/usbback/usbback.c similarity index 100% rename from linux-2.6.10-xen-sparse/drivers/xen/usbback/usbback.c rename to linux-2.6.11-xen-sparse/drivers/xen/usbback/usbback.c diff --git a/linux-2.6.10-xen-sparse/drivers/xen/usbfront/usbfront.c b/linux-2.6.11-xen-sparse/drivers/xen/usbfront/usbfront.c similarity index 100% rename from linux-2.6.10-xen-sparse/drivers/xen/usbfront/usbfront.c rename to linux-2.6.11-xen-sparse/drivers/xen/usbfront/usbfront.c diff --git a/linux-2.6.10-xen-sparse/drivers/xen/usbfront/xhci.h b/linux-2.6.11-xen-sparse/drivers/xen/usbfront/xhci.h similarity index 100% rename from linux-2.6.10-xen-sparse/drivers/xen/usbfront/xhci.h rename to linux-2.6.11-xen-sparse/drivers/xen/usbfront/xhci.h diff --git a/linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/mach-xen/smpboot_hooks.h b/linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/mach-xen/smpboot_hooks.h similarity index 100% rename from linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/mach-xen/smpboot_hooks.h rename to linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/mach-xen/smpboot_hooks.h diff --git a/linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/page.h b/linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/page.h index d0acc128a1..e3dfb002c7 100644 --- a/linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/page.h +++ b/linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/page.h @@ -114,7 +114,6 @@ static inline unsigned long pgd_val(pgd_t x) if (ret) ret = machine_to_phys(ret); return ret; } -#define pgd_val_ma(x) ((x).pgd) #define pgprot_val(x) ((x).pgprot) static inline pte_t __pte(unsigned long x) diff --git a/linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/spinlock.h b/linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/spinlock.h similarity index 84% rename from linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/spinlock.h rename to linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/spinlock.h index fb8bd00753..d7189a7c28 100644 --- a/linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/spinlock.h +++ b/linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/spinlock.h @@ -15,10 +15,13 @@ asmlinkage int printk(const char * fmt, ...) */ typedef struct { - volatile unsigned int lock; + volatile unsigned int slock; #ifdef CONFIG_DEBUG_SPINLOCK unsigned magic; #endif +#ifdef CONFIG_PREEMPT + unsigned int break_lock; +#endif } spinlock_t; #define SPINLOCK_MAGIC 0xdead4ead @@ -40,7 +43,7 @@ typedef struct { * We make no fairness assumptions. They have a cost. */ -#define spin_is_locked(x) (*(volatile signed char *)(&(x)->lock) <= 0) +#define spin_is_locked(x) (*(volatile signed char *)(&(x)->slock) <= 0) #define spin_unlock_wait(x) do { barrier(); } while(spin_is_locked(x)) #define spin_lock_string \ @@ -75,12 +78,12 @@ typedef struct { * (except on PPro SMP or if we are using OOSTORE) * (PPro errata 66, 92) */ - + #if !defined(CONFIG_X86_OOSTORE) && !defined(CONFIG_X86_PPRO_FENCE) #define spin_unlock_string \ "movb $1,%0" \ - :"=m" (lock->lock) : : "memory" + :"=m" (lock->slock) : : "memory" static inline void _raw_spin_unlock(spinlock_t *lock) @@ -98,7 +101,7 @@ static inline void _raw_spin_unlock(spinlock_t *lock) #define spin_unlock_string \ "xchgb %b0, %1" \ - :"=q" (oldval), "=m" (lock->lock) \ + :"=q" (oldval), "=m" (lock->slock) \ :"0" (oldval) : "memory" static inline void _raw_spin_unlock(spinlock_t *lock) @@ -120,7 +123,7 @@ static inline int _raw_spin_trylock(spinlock_t *lock) char oldval; __asm__ __volatile__( "xchgb %b0,%1" - :"=q" (oldval), "=m" (lock->lock) + :"=q" (oldval), "=m" (lock->slock) :"0" (0) : "memory"); return oldval > 0; } @@ -135,7 +138,7 @@ static inline void _raw_spin_lock(spinlock_t *lock) #endif __asm__ __volatile__( spin_lock_string - :"=m" (lock->lock) : : "memory"); + :"=m" (lock->slock) : : "memory"); } static inline void _raw_spin_lock_flags (spinlock_t *lock, unsigned long flags) @@ -148,7 +151,7 @@ static inline void _raw_spin_lock_flags (spinlock_t *lock, unsigned long flags) #endif __asm__ __volatile__( spin_lock_string_flags - :"=m" (lock->lock) : "r" (flags) : "memory"); + :"=m" (lock->slock) : "r" (flags) : "memory"); } /* @@ -166,6 +169,9 @@ typedef struct { #ifdef CONFIG_DEBUG_SPINLOCK unsigned magic; #endif +#ifdef CONFIG_PREEMPT + unsigned int break_lock; +#endif } rwlock_t; #define RWLOCK_MAGIC 0xdeaf1eed @@ -180,7 +186,17 @@ typedef struct { #define rwlock_init(x) do { *(x) = RW_LOCK_UNLOCKED; } while(0) -#define rwlock_is_locked(x) ((x)->lock != RW_LOCK_BIAS) +/** + * read_can_lock - would read_trylock() succeed? + * @lock: the rwlock in question. + */ +#define read_can_lock(x) ((int)(x)->lock > 0) + +/** + * write_can_lock - would write_trylock() succeed? + * @lock: the rwlock in question. + */ +#define write_can_lock(x) ((x)->lock == RW_LOCK_BIAS) /* * On x86, we implement read-write locks as a 32-bit counter @@ -212,6 +228,16 @@ static inline void _raw_write_lock(rwlock_t *rw) #define _raw_read_unlock(rw) asm volatile("lock ; incl %0" :"=m" ((rw)->lock) : : "memory") #define _raw_write_unlock(rw) asm volatile("lock ; addl $" RW_LOCK_BIAS_STR ",%0":"=m" ((rw)->lock) : : "memory") +static inline int _raw_read_trylock(rwlock_t *lock) +{ + atomic_t *count = (atomic_t *)lock; + atomic_dec(count); + if (atomic_read(count) >= 0) + return 1; + atomic_inc(count); + return 0; +} + static inline int _raw_write_trylock(rwlock_t *lock) { atomic_t *count = (atomic_t *)lock; -- 2.30.2